package done.easy_601_700;

import com.study.common.Employee;
import org.junit.Test;

import java.util.*;

import static com.study.util.LogUtil.info;

/**
 * 690. Employee Importance  员工的重要性
 * <p>
 * 给定一个保存员工信息的数据结构，它包含了员工唯一的id，
 * 重要度 和 直系下属的id。比如，员工1是员工2的领导，员
 * 工2是员工3的领导。他们相应的重要度为15, 10, 5。那么
 * 员工1的数据结构是[1, 15, [2]]，员工2的数据结构是[2, 10, [3]]，
 * 员工3的数据结构是[3, 5, []]。注意虽然员工3也是员工1的一个下属，
 * 但是由于并不是直系下属，因此没有体现在员工1的数据结构中。
 * 现在输入一个公司的所有员工信息，以及单个员工id，返回这
 * 个员工和他所有下属的重要度之和。
 * <p>
 * 示例 1:
 * 输入: [[1, 5, [2, 3]], [2, 3, []], [3, 3, []]], 1
 * 输出: 11
 * 解释:
 * 员工1自身的重要度是5，他有两个直系下属2和3，而且
 * 2和3的重要度均为3。因此员工1的总重要度是 5 + 3 + 3 = 11。
 *
 * @author 大硕
 * 2019-04-14 2:20 PM
 **/
@SuppressWarnings("all")
public class EmployeeImportance {

    public int getImportance(List<Employee> employees, int id) {
        // 190414 first
        return -1;
    }

    @Test
    public void test() {
        List<Employee> employees = new ArrayList<>();
        List<Integer> subs = new ArrayList();
        subs.add(2);
        subs.add(3);
        employees.add(new Employee(1, 5, subs));
        employees.add(new Employee(2, 3, new ArrayList<>()));
        employees.add(new Employee(3, 3, new ArrayList<>()));
        info("11 -> {}", getImportance(employees, 1));
    }
}





























/*
public int getImportance(List<Employee> employees, int id) {
    if (employees == null || employees.size() == 0)
        return 0;

    int sum = 0;
    for (int i = 0; i < employees.size(); i++) {
        if (employees.get(i).id == id) {
            sum += employees.get(i).importance;
            List<Integer> list = employees.get(i).subordinates;

            for (int j = 0; j < list.size(); j++)
                sum += getImportance(employees, list.get(j));

            break;
        }
    }
    return sum;
}
*/
